import { 
  ROLE_TREE, ROLE_LIST, ALL_ROLE_LIST, DELETE_ROLE, 
  ADD_ROLE, SAVE_ROLE, ADD_ROLE_TREE, ROLE_DETAIL, 
  SAVE_ROLE_TREE, GETDEPTROLETREE, GETDATAPERMISSIONTREE,
  GET_NEW_DATA_PERMISSION_TREE, GET_NEW_DATA_PERMISSION_SUB_TREE, SAVE_NEW_DATA_PERMISSION
} from './api'
import { METHOD, request } from '@/utils/request'

/**
 * 获取全部身份权限列表
 * @param params 身份权限列表参数
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getRoleList(params) {
  return request(ROLE_LIST, METHOD.POST, params)
}

/**
 * 获取全部角色列表
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getAllRoleList(params) {
  return request(ALL_ROLE_LIST, METHOD.POST, params)
}

/**
 *  删除列表
 * @param params 删除列表参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function deleteRoleList(params) {
  return request(DELETE_ROLE, METHOD.POST, params)
}

/**
 * 获取详细栏目权限信息
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function getDetailTreeList(params) {
   return request(ROLE_DETAIL, METHOD.POST, params)
}

/**
 * 获取全部栏目权限列表
 * @param params 身份权限列表参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function getRoleTree(params) {
  return request(ROLE_TREE, METHOD.GET, params)
}

/**
 * 新增身份
 * @param params 身份参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function addRoleInfo(params) {
  return request(ADD_ROLE, METHOD.POST, params)
}

/**
 * 保存身份
 * @param params 身份参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function saveRoleInfo(params) {
  return request(SAVE_ROLE, METHOD.POST, params)
}

/**
 * 新增操作权限
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function addRoleTreeInfo(params) {
  return request(ADD_ROLE_TREE, METHOD.POST, params)
}
/**
 * 保存操作身份权限
 * @param params 身份权限参数
 * @returns {Promise<AxiosResponse<T>>}
 */
 export async function saveRoleTreeInfo(params) {
  return request(SAVE_ROLE_TREE, METHOD.POST, params)
}

/**
 * 数据权限 -> 获取部门和角色树
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getDeptAndRoleTree(params) {
    return request(GETDEPTROLETREE, METHOD.GET, params);
}

/**
 * 数据权限 -> 获取数据权限树
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getDataPermissionTree(params) {
    return request(GETDATAPERMISSIONTREE, METHOD.GET, params);
}

/**
 * 数据权限 -> 获取数据权限树 (UC2.1)
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getNewDataPermissionTree(params) {
  return request(GET_NEW_DATA_PERMISSION_TREE, METHOD.POST, params);
}

/**
 * 数据权限 -> 基于路由获取组织子树 (UC2.1)
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function getNewDataPermissionSubTree(params) {
  return request(GET_NEW_DATA_PERMISSION_SUB_TREE, METHOD.POST, params);
}

/**
 * 数据权限 -> 保存数据权限 (UC2.1)
 * @param params
 * @returns {Promise<AxiosResponse<T>>}
 */
export async function saveNewDataPermission(params) {
  return request(SAVE_NEW_DATA_PERMISSION, METHOD.POST, params);
}
